home *** CD-ROM | disk | FTP | other *** search
/ Sports Illustrated Multimedia Almanac 1995 / Sports Illustrated Multimedia Almanac (1995)(StarPress)[Mac-PC].iso / pc / msshared.inc < prev    next >
Text File  |  1994-12-09  |  4KB  |  139 lines

  1. rem $$Begin$$
  2.  
  3. rem Copyright:    (c) 1994 StarPress Multimedia. All Rights Reserved.
  4. rem
  5. rem Project:      Sports Illustrated Multimedia Almanac
  6. rem
  7. rem Component:    Installer
  8. rem
  9. rem Description:  MSSETUP includes
  10. rem
  11. rem ---------------------------------------------------------------------
  12. rem
  13. rem   $Author:   NSJ  $
  14. rem
  15. rem     $Date:   06 Jul 1994 17:32:32  $
  16. rem
  17. rem      $Log:   S:/almanac.vcs/install/msshared.inv  $
  18. rem
  19. rem  $Logfile:   S:/almanac.vcs/install/msshared.inv  $
  20. rem
  21. rem $Workfile:   msshared.inc  $
  22. rem
  23. rem ---------------------------------------------------------------------
  24.  
  25. rem $$End$$
  26.  
  27. GLOBAL SharedFileNeedsCopying AS INTEGER
  28.  
  29. DECLARE FUNCTION WCompareVersion (szVer1$, szVer2$) AS INTEGER
  30.  
  31. DECLARE FUNCTION FindSharedFileFromPath (szField$, szVersion$) AS STRING
  32.  
  33. DECLARE FUNCTION SearchForLocationForSharedFile (szRegDbKey$, szWinIniSect$, szWinIniKey$, iWinIniField%, szDefault$, szVersion$) AS STRING
  34.  
  35.  
  36.  
  37. '' returns: 1 if szVer1$ > szVer2$;  0 if equal;  -1 if szVer1$ < szVer2$
  38. ''
  39. FUNCTION WCompareVersion (szVer1$, szVer2$) STATIC AS INTEGER
  40.     IF szVer1$ = "" THEN
  41.         IF szVer2$ = "" THEN
  42.             WCompareVersion = 0
  43.         ELSE
  44.             WCompareVersion = -1
  45.         END IF
  46.     ELSEIF szVer2$ = "" THEN
  47.         WCompareVersion = 1
  48.     ELSE
  49.         WCompareVersion = 0
  50.         FOR i% = 1 TO 4 STEP 1
  51.             piece1& = GetVersionNthField(szVer1$, i%)
  52.             piece2& = GetVersionNthField(szVer2$, i%)
  53.             IF piece1& > piece2& THEN
  54.                 WCompareVersion = 1
  55.                 GOTO _WCV_END
  56.             ELSEIF piece1& < piece2& THEN
  57.                 WCompareVersion = -1
  58.                 GOTO _WCV_END
  59.             END IF
  60.         NEXT i%
  61.     END IF
  62. _WCV_END:
  63. END FUNCTION
  64.  
  65.  
  66. '' private to this file - needed in next api
  67. ''
  68. FUNCTION FindSharedFileFromPath(szField$, szVersion$) STATIC AS STRING
  69.     FindSharedFileFromPath = ""
  70.     SharedFileNeedsCopying = 0
  71.     IF szField$ <> "" THEN
  72.         IF DoesFileExist(szField$, OF_EXIST) = 0 THEN
  73.             szFile$ = STRING$(32, 32)
  74.  
  75.             IF FParseFATPathIntoPieces(szField$, NULL, 0, NULL, 0, szFile$, 31) <> 0 THEN
  76.                 szField$ = FindFileUsingFileOpen(szFile$)
  77.             ELSE
  78.                 szField$ = ""
  79.             END IF
  80.             szFile$ = ""
  81.         END IF
  82.  
  83.         IF szField$ <> "" THEN
  84.             IF WCompareVersion(GetVersionOfFile(szField$), szVersion$) >= 0 THEN
  85.                 FindSharedFileFromPath = szField$
  86.             ELSEIF IsFileWritable(szField$) <> 0 THEN
  87.                 SharedFileNeedsCopying = 1
  88.                 FindSharedFileFromPath = szField$
  89.             END IF
  90.  
  91.             szField$ = ""
  92.         END IF
  93.     END IF
  94. END FUNCTION
  95.  
  96.  
  97. FUNCTION SearchForLocationForSharedFile (szRegDbKey$, szWinIniSect$, szWinIniKey$, iWinIniField%, szDefault$, szVersion$) STATIC AS STRING
  98.  
  99.     SearchForLocationForSharedFile = szDefault$
  100.  
  101. '$IFDEF    REG_DB_ENABLED
  102.     IF szRegDbKey$ <> "" THEN
  103.         szField$ = GetRegKeyValue(szRegDbKey$)
  104.         szFile$ = FindSharedFileFromPath(szField$, szVersion$)
  105.         IF szFile$ <> "" THEN
  106.             SearchForLocationForSharedFile = szFile$
  107.             szFile$ = ""
  108.             GOTO _SFLSFS_END
  109.         END IF
  110.     END IF
  111. '$ENDIF '' REG_DB_ENABLED
  112.  
  113.     IF szWinIniSect$ <> "" AND szWinIniKey$ <> "" THEN
  114.         szWinIniLine$ = GetIniKeyString("WIN.INI", szWinIniSect$, szWinIniKey$)
  115.         IF szWinIniLine$ <> "" THEN
  116.             szField$ = GetNthFieldFromIniString(szWinIniLine$, iWinIniField%)
  117.             szWinIniLine$ = ""
  118.             szFile$ = FindSharedFileFromPath(szField$, szVersion$)
  119.             IF szFile$ <> "" THEN
  120.                 SearchForLocationForSharedFile = szFile$
  121.                 szFile$ = ""
  122.                 GOTO _SFLSFS_END
  123.             END IF
  124.         END IF
  125.     END IF
  126.  
  127.     '' return value is still szDefault$ - assume it is writable
  128.     SharedFileNeedsCopying = 1
  129.     IF DoesFileExist(szDefault$, OF_EXIST) <> 0 THEN
  130.         IF WCompareVersion(GetVersionOfFile(szDefault$), szVersion$) >= 0 THEN
  131.             SharedFileNeedsCopying = 0
  132.         END IF
  133.     END IF
  134.  
  135. _SFLSFS_END:
  136.  
  137. END FUNCTION
  138.  
  139.